home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 7
/
DOS229B.dsk
/
RAINBOW DEMO.bas
< prev
Wrap
BASIC Source File
|
2012-02-16
|
8KB
|
124 lines
10 HOME : TEXT : PRINT : GOSUB 10000: GOTO 1000
50 TEXT : HOME : RUN
60 P0 = ( PEEK(0) + PEEK(1) *256) *.914:P1 = PEEK(2):P2 = P0:P3 = P1: RETURN
80 Q1 = 0: IF KI = 0 THEN Q1 = 1:SS = 1: & B,90,8
85 RETURN
90 & DRAW 19 AT 168,172: RETURN
95 HCOLOR= 3: HPLOT 165,171 TO 187,171 TO 187,191 TO 165,191 TO 165,171: HCOLOR= 3 *(RF >1): HPLOT 176,172 TO 176,190: HCOLOR= 3 *(RF = 1 OR RF = 4): HPLOT 166,181 TO 186,181: HCOLOR= 3: HPLOT 176,181: RETURN
100 POKE 230,32: POKE 28,0: CALL HM,0,164 *PG,192,0,40: POKE -16300,0: ON NOT PG GOSUB 195
101 HCOLOR= 3: POKE 28,127: & DRAW 5 AT 262,174: & DRAW 7 AT 226,172: IF CS = 10 THEN 103
102 ON (CS = 6) +1 GOSUB 90,95
103 & DRAW 6 AT 138,174: & DRAW 20 AT 5,172: IF CS < >6 THEN & DRAW 21 AT 88,172
106 & DRAW 8 AT 118,174: HPLOT 41,174 TO 70,174 TO 70,191 TO 41,191 TO 41,174 TO 40,174 TO 40,191: HPLOT 71,174 TO 71,191
109 RETURN
110 POKE 28,0: & DRAW 26 AT 18,176
115 PA = (PA +1) *(PA <11): POKE 28,127: & DRAW 9 +PA +9 *(PA >9) AT 18,176: POKE PN,PA -9 *(PA >9): CALL DP: RETURN
120 POKE PN,PT: CALL DP +3: POKE CN, PEEK(CN) +CO: CALL DP +6: CALL MV: RETURN
125 WF = 4: GOTO 900
126 CALL HM,1,0,189,11,20,0,11: CALL UN,2,18: POKE KS,10:ZZ = 1:K = 52:K1 = 17:K2 = 102:X = 190:SS = 0: GOSUB 260:FF = 2 ^S1:F1 = FF: POKE 230,64: CALL HM,1,0,189,11,20: POKE 230,32:BR = BP: RETURN
130 WF = 5: GOTO 900
131 CALL HM,1,0,182,11,20,0,11: CALL UN,2,17: POKE KS,30
132 CALL BS:BR = PEEK(6): POKE 230,64: CALL HM,1,0,182,11,20,0,11: POKE 230,32:FF = 32 *(BR = 49) +F1 *(BR < >49)
133 IF BR < >49 THEN BP = BR
134 RETURN
140 POP :PG = 0: IF CS = 6 OR CS = 10 THEN PG = 1
142 WF = 7: GOTO 900
150 IF CS = 10 THEN RETURN
151 IF CS = 6 THEN 156
152 POKE 28,0: & DRAW 26 AT 171,174
155 PI = (PI +1) *(PI <1): POKE 28,127: & DRAW 10 +PI AT 171,174: GOSUB 290: RETURN
156 RF = RF/2: IF RF <1 THEN RF = 4
157 GOSUB 95: RETURN
190 ON (CS = 6 OR CS = 10) +1 GOSUB 290,195: RETURN
195 POKE 28,127: CALL HM,0,0,164,3,37: RETURN
200 POKE KS,1:I = (CS = 6) +2 *(CS = 10): & READ 11000 +I *10 +( PEEK(OP) >0): READ K1,K: FOR J = 0 TO K: READ X%(J): NEXT
201 MD = 2 *I +( PEEK(OP) >0)
202 SS = 0:K = 15:KK = 0:X1 = 0:Y1 = 0:P1 = INT(P1/K) *K:ZZ = 1: GOTO 206
205 GOSUB 80: IF Q1 THEN 250
206 GOSUB 207: GOTO 220
207 CALL WK:KI = PEEK(KX): ON KI = 255 GOTO 219: POKE KP,255: ON KI = 1 GOSUB 13000: IF KI = 10 THEN CALL ST
208 P0 = P0 +K1 *(KI = 4 OR KI = 8) -K1 *(KI = 3 OR KI = 7):P0 = P0 *(P0 >0):P0 = P0 *(P0 <255) +255 *(P0 > = 255)
209 P1 = P1 +K *(KI = 5 OR KI = 9) -K *(KI = 2 OR KI = 6):P1 = P1 *(P1 >0): ON K1 <30 GOTO 210: IF P1 >165 THEN P1 = 165
210 IF K1 = 15 OR 17 THEN IF P1 >242 THEN P1 = 242
219 ZZ = 0: RETURN
220 I = (P0 >20):J = (P1 <160): IF I AND J THEN 250
222 IF NOT J THEN Y = 165:S1 = INT(P0/K1):X = X%(S1):S1 = S1 +11: GOTO 230
225 X = 14:S1 = INT(P1/K):Y = S1 *15 +3
230 IF X1 = X AND Y1 = Y THEN 205
240 IF KK THEN POKE 28,0: & DRAW AR AT X1,Y1
245 X1 = X:Y1 = Y:KK = 1:AR = 24 +(S1 >10): POKE 28,127: & DRAW AR AT X1,Y1: & B,40 +15 *(AR = 24),8: GOTO 205
250 IF KK THEN POKE 28,0: & DRAW AR AT X1,Y1
255 RETURN
260 QQ = SS:KK = 0:Y1 = 0:AR = 24:ZZ = 1: GOTO 267
265 GOSUB 80: IF Q1 THEN 280
267 GOSUB 207: IF P0 >14 AND SS THEN SS = 0: GOTO 280
268 S1 = INT(P1/K):Y = S1 *K1 +K2: IF Y = Y1 THEN 265
270 IF KK THEN POKE 28,255 *( NOT SS): & DRAW AR AT X,Y1
275 Y1 = Y:KK = 1: POKE 28,128 -SS: & DRAW AR AT X,Y1: & B,40,8: GOTO 265
280 IF KK THEN POKE 28,255 *( NOT QQ): & DRAW AR AT X,Y1
282 RETURN
290 WF = 6: GOTO 900
295 POKE PN -6,3: POKE PN -5,37: POKE PN -3,164: CALL UN,2,15 +PI: RETURN
300 CALL HM,1,0,164,3,37,0,3:K = 24:K1 = 15:K2 = 3:X = 14:PA = 9: GOSUB 110: GOSUB 195: CALL DG: POKE 28,0: CALL HM,0,164,192,11,29
301 CALL HM,0,142,154,18,6: HCOLOR= 3: HPLOT 126,142 TO 126,153: HPLOT 127,142 TO 127,153: HCOLOR= 0: HPLOT 167,142 TO 167,153: HPLOT 168,142 TO 168,153: POKE 28,127: & DRAW 30 AT 135,145
305 FOR I = 1 TO 3000: NEXT
310 GOSUB 315
312 RETURN
315 POKE 230,64: CALL HM,1,0,164,3,37,0,3: POKE 230,32: GOSUB 101: IF CS = 10 OR CS = 6 THEN 325
320 POKE 28,127: & DRAW 10 +PI AT 171,174
325 RETURN
400 GOSUB 315: POKE OP,0: POKE 28,0: & DRAW 27 AT 195,172: RETURN
500 RETURN
700 CALL -3288: IF PEEK(222) >13 THEN RUN
800 GOSUB 50
900 REM ONERR GOTO 700
910 PRINT D$"BLOAD B.HIRES TABLES"
920 POKE -16304,0: POKE -16300,0: ON WF GOTO 502,505,312,126,131,295,1000
1000 POKE KS,30: POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,19: ON NOT PEEK(255) GOTO 12000:WF = 0: POKE -16299,0: CALL MS:CS = PEEK(6)
1001 IF TS = 1 THEN TS = 2: POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON NOT PEEK(255) GOTO 12000: POKE -16300,0: FOR I = 1 TO 11000: NEXT
1003 PI = -1:RF = 4 *(CS = 6):FF = 32 -16 *(CS = 6 OR CS = 10):BR = 49 -45 *(CS = 6 OR CS = 10):F1 = 16
1004 PA = -1:CO = 2 -(CS = 6 OR CS = 10)
1005 P0 = 82:P1 = 165: IF CS < >6 AND CS < >10 THEN PG = 0
1006 GOSUB 100: GOSUB 110:PT = PA: GOSUB 120: & B,10 +20 * RND(1),6: & B,12 +8 * RND(1),6: & B,8 +18 * RND(1),4
1007 IF CS = 6 OR CS = 10 THEN 1010
1008 GOSUB 150
1010 POKE KS,5: POKE FL,FF: POKE BN,BR: POKE RE,RF: POKE 2,P1:P0 = P0 *1.08: POKE 1,P0 >255: POKE 0,P0 -256 * PEEK(1): CALL DR: GOSUB 60
1020 GOSUB 200: IF NOT SS THEN 1010
1030 IF S1 <11 THEN PT = PA:CO = S1: GOSUB 120: GOTO 1020
1035 IF S1 >11 AND PEEK(OP) >0 AND S1 < >16 +(MD = 1) THEN POKE OP,0: POKE 28,0: & DRAW 27 AT 195,172
1040 POKE DF,0: ON MD +1 GOSUB 1050,1060,1070,1080,1090,1100: GOTO 1020
1050 ON S1 -10 GOSUB 110,300,125,130,140,150,190,500: RETURN
1060 ON S1 -10 GOSUB 110,300,125,130,140,150,400,190,500: RETURN
1070 ON S1 -10 GOSUB 110,300,130,140,150,190,500: RETURN
1080 ON S1 -10 GOSUB 110,300,130,140,150,400,190,500: RETURN
1090 ON S1 -10 GOSUB 110,300,125,130,140,190,500: RETURN
1100 ON S1 -10 GOSUB 110,300,125,130,140,400,190,500: RETURN
10000 PRINT CHR$(4)"MAXFILES1": HIMEM: 7807
10001 ONERR GOTO 12000
10002 GS = PEEK(674)
10003 D$ = CHR$(4):B0 = -16287:B1 = -16286: POKE 230,32: CALL 62450: POKE 230,64: CALL 62450: POKE -16302,0: POKE -16297,0
10005 HM = 24704:DP = HM +3:MV = HM +12:MU = HM +15:BS = HM +18:MS = HM +21:UN = HM +24:DG = HM +27:EC = HM +30:PN = HM +47:CN = PN -2:DR = 24737:FL = DR +23:BN = DR +32:RE = DR +24
10008 WK = DR +3:KX = 24772:OP = KX +2: POKE OP,0:KP = OP +2:DF = KP +1:ST = DF +18: POKE KP,255:UF = 12:SW = ST +6:PF = ST +9:BP = 4:EX = 24896:EY = EX +3
10010 PRINT D$"BLOADB.RAINBOW1": PRINT D$"BLOADB.HIRES TABLES": POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,21: ON NOT PEEK(255) GOTO 12000
10016 POKE -16304,0: POKE -16300,0: HCOLOR= 3: PRINT D$"BLOADB.SOUND & READ": PRINT D$"BLOADB.RAINBOW2": PRINT D$"BLOADCRAYONS"
10017 KS = 24906:J = PEEK(PF -2) + PEEK(PF -1) *256: PRINT D$"BLOADKEYS,A";J
10018 IF GS = 119 THEN CALL ST
10020 POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,20: ON NOT PEEK(255) GOTO 12000
10025 POKE -16299,0: FOR I = 1 TO 3000: NEXT
10026 TS = 1: POKE 230,32: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON NOT PEEK(255) GOTO 12000: POKE -16300,0
10027 FOR I = 1 TO 11000: NEXT
10030 POKE DR +33,0: POKE DR +34,153: POKE 1013,76: POKE 1014,0: POKE 1015,3: RETURN
11000 DATA 36,7,15,55,94,117,143,172,231,267
11001 DATA 31,8,15,55,94,117,143,172,199,231,267
11010 DATA 42,6,15,55,117,143,175,231,267
11011 DATA 36,7,15,55,117,143,175,199,231,267
11020 DATA 42,6,15,55,94,117,143,231,267
11021 DATA 36,7,15,55,94,117,143,199,231,267
12000 POKE 674,GS: RUN
13000 TS = TS +1: POKE 230,64: POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,9 +TS: ON NOT PEEK(255) GOTO 12000: POKE -16299,0
13010 POKE 230,32
13020 IF TS <5 THEN FOR I = 1 TO 11000: NEXT : POKE -16300,0: RETURN
13030 POKE PN -6,0: POKE PN -5,40: POKE PN -3,192: CALL UN,2,20: ON NOT PEEK(255) GOTO 12000
13040 FOR I = 1 TO 11000: NEXT : POKE -16300,0
13050 FOR I = 1 TO 5000: NEXT
13060 POKE 672,7: POKE 673,7: POKE 674,GS: PRINT : PRINT D$"RUNHELLO"